package com.mxy.myapplication.application;

import android.app.Application;
import android.content.res.Configuration;
import android.content.res.Resources;

import com.mxy.myapplication.util.ShareData;
import com.mxy.myapplication.util.Util;
import com.mxy.myapplication2.util.JNIUtil;

/**
 * 自定义application
 *
 * @author maxiaoyong
 */

public class MyApplication extends Application {

    /**
     * 加载动态库so文件
     */
    static {
        // 加载so文件，不要带上前缀lib和后缀.so
        System.loadLibrary("native-lib");
    }

    @Override
    public void onCreate() {
        super.onCreate();

        String processName = Util.getProcessName(this, android.os.Process.myPid());
        if (processName == null) {
            processName = "abc";
        }
        // 根据进程名进行初始化，避免不同的进程导致的多次初始化
        if (processName.equals(this.getPackageName())) {
            Util.isDebugMode(this);
            ShareData.init(this);

            // 执行JNI方法
            Util.print(JNIUtil.getText());
        }
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        // 非默认值
        if (newConfig.fontScale != 1) {
            // 发现字体变化之后，调用getResources()方法重新设置字体
            getResources();
        }
        super.onConfigurationChanged(newConfig);
    }

    @Override
    public Resources getResources() {
        Resources res = super.getResources();
        // 非默认值
        if (res.getConfiguration().fontScale != 1) {
            Configuration newConfig = new Configuration();
            // 设置默认
            newConfig.setToDefaults();
            res.updateConfiguration(newConfig, res.getDisplayMetrics());
        }
        return res;
    }
}